package LeetCode;

/**
 * Created by kechelle on 2020/8/20 10:55
 * 长按键入
 * 示例 1：
 * 输入：name = "alex", typed = "aaleex"
 * 输出：true
 * 解释：'alex' 中的 'a' 和 'e' 被长按。
 * 示例 2：
 * 输入：name = "saeed", typed = "ssaaedd"
 * 输出：false
 * 解释：'e' 一定需要被键入两次，但在 typed 的输出中不是这样。
 */
public class Code925 {

    public static boolean isLongPressedName(String name, String typed) {
        if (name.length() == 0) return typed.length() == 0 ? true : false;
        if (name.length()>typed.length() || typed.charAt(0)!=name.charAt(0)) return false;
        int count = 1,result = 0;
        for (int i=1;i<typed.length();i++){
            if (typed.charAt(i) == name.charAt(count)){
                count++;
            }else if (typed.charAt(i)!=typed.charAt(i-1)){
                return false;
            }
            if (count==name.length()) {
                result = i+1;
                break;
            }
        }
        while (result<typed.length()){
            if (typed.charAt(result)!=name.charAt(count-1)) return false;
            result++;
        }
        return true;
    }

    public static void main(String[] args) {
        System.out.println(Code925.isLongPressedName("alex","aalexx"));
    }
}
